package clases;

import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Date;

public class Ficha_class extends Conexion{

	private String codigo;
	private String primerapellido;
	private String segundoapellido;
	private String casadaapellido;
	private String nombres;
	private String direccion;
	private String telefono;
	private String lugarnacimiento;
	private Date fechanacimiento;
	private Double estatura;
	private Double peso;
	private String dui;
	private String lugarexpdui;
	private Date fechaexpdui;
	private String isss;
	private String inpep;
	private String carnetelectoral;
	private String afp;
	private String nup;
	private Boolean licencia;
	private Date fecharecepcion;
	private Boolean aceptada;
	private String estadocivil;
	private String nacionalidad;
	private String usuario;
	private String municipio;
	private String departamento;
	private String tipocontrato;
	private String sexo;
	private String marcador;
	private utilidades_class utilidades;
	private String query;
	private String completo;
	private ArrayList<String> parametros;
	
	public Ficha_class()
	{
		utilidades = new utilidades_class();
	}
	
	public Ficha_class(String codigo)
	{
		this.codigo=codigo;
		utilidades= new utilidades_class();
	}
	public Ficha_class(String codigo, String nombres)
	{
		this.codigo=codigo;
		this.nombres=nombres;
		utilidades= new utilidades_class();
	}
	
	public Ficha_class(String codigo, String primerapellido, String segundoapellido, String casadaapellidos, String nombres, 
			String direccion, String telefono, String lugarnacimiento, Date fechanacimiento, Double estatura, Double peso, String dui, String lugarexpdui, 
			Date fechaexpdui, String isss, String inpep, String carnetelectoral, String afp, String nup, Boolean licencia, Date fecharecepcion, 
			Boolean aceptada, String estadocivil, String nacionalidad, String usuario, String municipio, String tipocontrato, String sexo, String marcador, String departamento, String completo)
	{
		this.codigo=codigo;
		this.primerapellido=primerapellido;
		this.segundoapellido=segundoapellido;
		this.casadaapellido=casadaapellidos;
		this.nombres=nombres;
		this.direccion=direccion;
		this.telefono=telefono;
		this.lugarnacimiento=lugarnacimiento;
		this.fechanacimiento=fechanacimiento;
		this.estatura=estatura;
		this.peso=peso;
		this.dui=dui;
		this.lugarexpdui=lugarexpdui;
		this.fechaexpdui=fechaexpdui;
		this.isss=isss;
		this.inpep=inpep;
		this.carnetelectoral=carnetelectoral;
		this.afp=afp;
		this.nup=nup;
		this.licencia=licencia;
		this.fecharecepcion=fecharecepcion;
		this.aceptada=aceptada;
		this.estadocivil=estadocivil;
		this.nacionalidad=nacionalidad;
		this.usuario=usuario;
		this.municipio=municipio;
		this.tipocontrato=tipocontrato;
		this.sexo=sexo;
		this.marcador=marcador;
		this.departamento=departamento;
		this.completo=completo;
		this.utilidades=new utilidades_class();
	}
	
	public void nuevo()
	{
		query = "INSERT INTO ficha VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; //31
		parametros = new ArrayList<String>();
		parametros.add(codigo);
		parametros.add(primerapellido);
		parametros.add(segundoapellido);
		parametros.add(casadaapellido);
		parametros.add(nombres);
		parametros.add(direccion);
		parametros.add(telefono);
		parametros.add(lugarnacimiento);
		parametros.add(utilidades.insertarfecha(fechanacimiento));
		parametros.add(String.valueOf(estatura));
		parametros.add(String.valueOf(peso));
		parametros.add(dui);
		parametros.add(lugarexpdui);
		parametros.add(utilidades.insertarfecha(fechaexpdui));
		parametros.add(isss);
		parametros.add(inpep);
		parametros.add(carnetelectoral);
		parametros.add(afp);
		parametros.add(nup);
		parametros.add(String.valueOf(licencia));
		parametros.add(utilidades.insertarfecha(fecharecepcion));
		parametros.add(String.valueOf(aceptada));
		parametros.add(estadocivil);
		parametros.add(nacionalidad);
		parametros.add(usuario);
		parametros.add(municipio);
		parametros.add(tipocontrato);
		parametros.add(sexo);
		parametros.add(marcador);
		parametros.add(departamento);
		parametros.add(completo);
		sentenciaConnection(query, parametros);
	}
	
	public void modificar()
	{
		query = "UPDATE ficha SET primerapellido=?, segundoapellido=?, casadaapellido=?, nombres=?, " +
				"direccion=?, telefono=?, lugarnacimiento=?, fechanacimiento=?, estatura=?, peso=?, " +
				"dui=?, lugarexpediciondui=?, fechaexpediciondui=?, isss=?, inpep=?, carnetelectoral=?, " +
				"afp=?, nup=?, licencia=?, fecharecepcion=?, codestadocivil=?, codnacionalidad=?, " +
				"codusuario=?, codmunicipio=?, codtipocontrato=?, sexo=?, aceptada=?, marcador=?, coddepartamento=?, completo=? WHERE codigonit=?";
		parametros = new ArrayList<String>();
		parametros.add(primerapellido);
		parametros.add(segundoapellido);
		parametros.add(casadaapellido);
		parametros.add(nombres);
		parametros.add(direccion);
		parametros.add(telefono);
		parametros.add(lugarnacimiento);
		parametros.add(utilidades.insertarfecha(fechanacimiento));
		parametros.add(String.valueOf(estatura));
		parametros.add(String.valueOf(peso));
		parametros.add(dui);
		parametros.add(lugarexpdui);
		parametros.add(utilidades.insertarfecha(fechaexpdui));
		parametros.add(isss);
		parametros.add(inpep);
		parametros.add(carnetelectoral);
		parametros.add(afp);
		parametros.add(nup);
		parametros.add(String.valueOf(licencia));
		parametros.add(utilidades.insertarfecha(fecharecepcion));
		parametros.add(estadocivil);
		parametros.add(nacionalidad);
		parametros.add(usuario);
		parametros.add(municipio);
		parametros.add(tipocontrato);
		parametros.add(sexo);
		parametros.add(String.valueOf(aceptada));
		parametros.add(marcador);
		parametros.add(departamento);
		parametros.add(completo);
		parametros.add(codigo);
		sentenciaConnection(query, parametros);
	}
	
	public void eliminar()
	{
		query = "DELETE FROM ficha WHERE codigonit=?";
		parametros = new ArrayList<String>();
		parametros.add(codigo);
		sentenciaConnection(query, parametros);
	}
	
	public ResultSet buscar()
	{
		String queryref = "SELECT * FROM ficha WHERE codigonit=? OR (nombres+ ' ' +primerapellido+ ' ' +segundoapellido) LIKE ?";
		ArrayList<String> parametrosref = new ArrayList<String>();
		parametrosref.add(this.codigo);
		parametrosref.add("%"+this.nombres+"%");
		return mostrar(queryref, parametrosref);
	}
	
	public ResultSet mostrar()
	{
		if(this.codigo!=null && this.codigo!="")	query = "SELECT * FROM ficha WHERE codigonit='"+this.codigo+"'";
		else query = "SELECT * FROM ficha";
		
		return consultaConnection(query);
	}
	
	public ResultSet mostrar(String queryref)
	{
		return consultaConnection(queryref);
	}
	
	public ResultSet mostrar(String queryref, ArrayList<String> parametrosref)
	{
		return consultaConnection(queryref, parametrosref);
	}
	
}
